package com.tc.vms.iface;

import com.tc.vms.MessageWrap;
import com.tc.vms.SLA;
import com.tc.vms.exception.VmsClientException;
import com.tc.vms.producer.SendResult;

public interface IPublisher extends VmsService {

    /**
     * suspend producer send message service
     */
    void suspend();

    /**
     * resume producer and continue sending message
     */
    void resume();

    SLA slaOption();

    //PubQoS qosOption();

    SendResult sendMessage(MessageWrap message) throws VmsClientException;

    SendResult sendMessageByOrder(MessageWrap message, String partKey) throws VmsClientException;

    SendResult sendTransactionMessage(MessageWrap message, TransactionMessageListener listener) throws VmsClientException;

}
